[ストレスレスへ]S3操作の効率化を図るため、goofysでのマウント・アンマウント手続きを抑えてみた
はじめに
S3上の圧縮ファイルをダウンロードして数行を取得する、といった作業は繰り返すとそれなりの時間と手間が掛かります。
S3バケットをローカル環境にマウントすることによってアクセスに掛かる時間を短縮して作業を軽快にしつつ、見落としがちなアンマウント操作もまとめてみました。
導入
作業の繰り返しが快適になるように性能を求めたいため、マウントにはgoofys
を利用します。
go get github.com/kahing/goofys go install github.com/kahing/goofys
S3の指定バケットをマウントする
指定するバケット名は必ず利用するAWSアカウントがアクセスできるバケットであることを確認しておきます。環境設定をしていない場合はdefaultプロファイルが適用されるため、必要に応じてAWS_PROFILE
に指定しておきます。
% aws s3 ls 2019-06-11 10:00:00 test-bucket % mkdir -p /path/to/dir % $GOPATH/bin/goofys test-bucket /path/to/dir
マウント先ディレクトリ内にS3上のオブジェクトが確認できれば完了です。
% aws s3 ls target-bucket 2019-06-11 10:00:00 111111 target-object.csv.gz % ls /path/to/dir target-object.csv.gz
ファイルから直接特定行を取得する
マウントしたディレクトリから一時ファイル作成無しで特定行を出してみます。
% ls % gzcat /path/to/dir/target-object.csv.gz | sed -n 1p 1,1,1,1,1,1,1,1,1,1 % ls
アンマウントする場合
umount
にて行います。
umount /path/to/dir
まとめ
ダウンロード時の待ちが無くなるため、事ある毎にターミナルにてS3からダウンロードして作業されている方には特にオススメです。